#ifndef GAMEOBJECT_H
#define GAMEOBJECT_H


#include <OgreBullet/Dynamics/OgreBulletDynamicsRigidBody.h>
#include <Ogre.h>

/**
 * @brief The GameObject class
 *
 * This class defines a general Object in an ogre Game.
 */
class GameObject
{
public:
    /**
     * @brief Constructor of GameObject
     */
	GameObject();

    /**
     * @brief GetEntity
     * @return m_Entity: the member entity
     */
	Ogre::Entity *GetEntity() { return m_Entity; }

    /**
     * @brief GetRootNode
     * @return m_ObjectRootNode: the member root Scenenode
     */
    Ogre::SceneNode *GetRootNode() { return m_ObjectRootNode; }

    /**
     * @brief GetEntityNode
     * @return m_EntityNode: the member entity Scenenode
     */
    Ogre::SceneNode *GetEntityNode() { return m_EntityNode; }

protected:

    /**
     * @brief m_Entity
     * the entity
     */
	Ogre::Entity *m_Entity;
    /**
     * @brief m_ObjectRootNode
     * the root node for all components of the object to be attached to.
     */
	Ogre::SceneNode *m_ObjectRootNode;
    /**
     * @brief m_EntityNode
     * the node for the entity of the object to be attached to.
     */
	Ogre::SceneNode *m_EntityNode;
};

#endif // GAMEOBJECT_H
